/*
 * STC_Download.h
 *
 *  Created on: 2025年4月22日
 *      Author: Li
 */

#ifndef __STC_DOWNLOAD_H__
#define __STC_DOWNLOAD_H__

#include "app/Activity.h"
#include "entry/EasyUIContext.h"

#include "uart/ProtocolData.h"
#include "uart/ProtocolParser.h"
#include "uart/ProtocolSender.h"
#include "utils/Log.h"
#include "control/ZKDigitalClock.h"
#include "control/ZKButton.h"
#include "control/ZKCircleBar.h"
#include "control/ZKDiagram.h"
#include "control/ZKListView.h"
#include "control/ZKPointer.h"
#include "control/ZKQRCode.h"
#include "control/ZKTextView.h"
#include "control/ZKSeekBar.h"
#include "control/ZKEditText.h"
#include "control/ZKVideoView.h"
#include "window/ZKSlideWindow.h"

// typedef unsigned char BYTE;
typedef unsigned short WORD;

#define BOOL bool
// 宏、常量定义
#define FALSE 0
#define TRUE 1
#define LO_BYTE(w) ((BYTE)(WORD)(w))
#define HI_BYTE(w) ((BYTE)((WORD)(w) >> 8))

#define MINBAUD 38400L
#define MAXBAUD 38400L

#define FOSC 30000000L                       // 主控芯片工作频率
#define BR(n) (65536 - (FOSC / (n) + 2) / 4) // 主控芯片串口波特率计算公式
// 加 2 操作是为了让 Keil 编译器
// 自动实现四舍五入运算
#define T1MS (65536 - FOSC / 1000) // 主控芯片 1ms 定时初值

#define FUSER 30000000L                       // STC8H 系列目标芯片工作频率
#define RL(n) (65536 - (FUSER / (n) + 2) / 4) // STC8H 系列目标芯片串口波特率计算公式

extern BYTE TxBuffer[256]; // 串口数据发送缓冲区

// bool send_UART(BYTE *pdata, BYTE len)
// 函数声明
void Initial(void);
void DelayXms(WORD x);
BYTE UartSend(BYTE dat);
void CommInit(void);
void CommSend(BYTE size);
BOOL Download(BYTE *pdat, long size); // 下载文件
#endif                                /* __MAINACTIVITY_H__ */
